<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>函数式组件</title>
</head>
<body>
    <!-- 准备好DOM容器 -->
    <div id="test"></div>

    <!-- 必须按照顺序引入JS -->
    <!-- 引入React核心库 -->
    <script src="../js/react.development.js"></script>
    <!-- 引入react-dom库，用于操作DOM -->
    <script src="../js/react-dom.development.js"></script>
    <!-- 引入babel，用于将JSX翻译为JS -->
    <script src="../js/babel.min.js"></script>

    <!-- type必须为text/babel，代表里面的内容为JSX -->
    <script type="text/babel">
        // 1. 创建函数式组件
        // 组件名（函数名）必须使用PascalCase
        function MyComponent() {
            // Babel 默认使用严格模式，此模式下全局函数的this为undefined
            console.log(this)
            return <h2>我是用函数定义的组件（适用于【简单组件】的定义）</h2>
        }

        // 2. 渲染组件到页面
        // 使用组件时，render方法的第一个参数为组件标签
        ReactDOM.render(<MyComponent/>, document.getElementById('test'))

        /**
         * 执行了ReactDOM.render()方法之后，发生了什么？
         *   1. React解析组件标签，找到了MyComponent组件。
         *   2. 发现组件是使用函数定义的，随后调用该函数，将返回的虚拟DOM转为真实DOM，随后呈现在页面中。
         */
    </script>
</body>
</html>